package ar.com.viajes.dao.imp;

import java.util.Date;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import ar.com.viajes.dao.PasajeDao;
import ar.com.viajes.dominio.Pasaje;
import ar.com.viajes.dominio.Viaje;

public class PasajeDaoImpl extends HibernateDaoSupport implements PasajeDao {

	

	@Override
	public void insertar(Pasaje pasaje) {
		getHibernateTemplate().save(pasaje);
		
		// TODO Auto-generated method stub
		
	}

	@Override
	public void elimninar(Pasaje pasaje) {
		// TODO Auto-generated method stub
		getHibernateTemplate().delete(pasaje);
	}

	@Override
	public List<Pasaje> getAll() {
		// TODO Auto-generated method stub
		Criteria criteria = getSession().createCriteria(Pasaje.class);
		return criteria.list();
		
	}

	@Override
	public List<Pasaje> obtenerPasajeIniciado(int idPasajero) {
		Criteria criteria = getSession().createCriteria(Pasaje.class);
		criteria.add(Restrictions.eq("pasajero.id", idPasajero));
		List<Pasaje> pasaje1 = criteria.list();
		return pasaje1;
		
	}
	
	public List<Pasaje> obtenerPasajesFechaPasajero(int idPasajero, Date fecha) {
		Criteria criteria = getSession().createCriteria(Pasaje.class);
		
		if (idPasajero == 0 && fecha == null) {
//			criteria.add(Restrictions.like("estado", "ACTIVO"));
			List<Pasaje> viajes = criteria.list();
			return viajes;
			
		} else if (idPasajero == 0 && fecha!= null) {
			criteria.add(Restrictions.eq("fecha", fecha));
			List<Pasaje> viajes = criteria.list();
			return viajes;
		} else if (idPasajero != 0 && fecha == null) {
			criteria.add(Restrictions.eq("pasajero.id", idPasajero));
//			criteria.add(Restrictions.like("estado", "ACTIVO"));
			List<Pasaje> viajes = criteria.list();
		
			return viajes;
		} else {
			
			criteria.add(Restrictions.eq("pasajero.id", idPasajero));
			criteria.add(Restrictions.eq("fecha", fecha));
	
			List<Pasaje> viajes = criteria.list();

	
			return viajes;
		}

		
		
		
//		
//		criteria.add(Restrictions.eq("pasajero.id", idPasajero));
//		List<Pasaje> pasaje1 = criteria.list();
//		return pasaje1;
		
	}
	
	
	
	
	
	
	

}
